﻿using Microsoft.Playwright;

// using Vin.Tool.Core.EncryptCategory;
//
// try
// {
//     // 1. 生成或获取密钥
//     // 注意：实际应用中应妥善保存密钥，不要每次生成新的
//     // var (keyBytes, keyString) = AesGcmHelper.GenerateNewKey();
//     // Console.WriteLine("生成的密钥字符串（用于前端）: " + keyString);
//
//     // 如果已有前端生成的密钥，使用此方法转换
//     byte[] keyBytes = AesGcmEncryptTool.LoadKey("pbS0Y44U4rDKLWtj71LBG80fFJMoGZKUNrTQa4Fe4AE=");
//
//     // 2. 准备要加密的数据
//     string jsonData = "这是一段测试数据，用于AES-GCM加密解密示例。";
//
//     // 3. 加密并保存
//     string filePath = "data.xyz";
//     AesGcmHelper.EncryptAndSave(jsonData, keyBytes, filePath);
//     Console.WriteLine($"数据已加密保存到 {filePath}");
//
//     // 4. 读取并解密
//     // var fileData = File.ReadAllBytes(@"C:\Users\Administrator\Desktop\data.xyz");
//     // string decryptedData = AesGcmEncryptTool.DecryptData(keyBytes, fileData);
//     // // string decryptedData = AesGcmHelper.LoadAndDecrypt(keyBytes, filePath);
//     // Console.WriteLine("解密后的数据: " + decryptedData);
// }
// catch (Exception ex)
// {
//     Console.WriteLine("操作失败: " + ex.Message);
// }

// Environment.SetEnvironmentVariable("PWDEBUG", "1");

var playwright = await Playwright.CreateAsync();
// PWDEBUG=1
var chromium = await playwright.Chromium.LaunchAsync(new()
{
    Headless = false,
    ExecutablePath = @"C:\Program Files\Google\Chrome\Application\chrome.exe",
});

var browser = await chromium.NewContextAsync();

var page = await browser.NewPageAsync();

var res = await page.GotoAsync("https://www.baidu.com");

page.SetDefaultTimeout(1000);

var locator = page.Locator(".hotsearch-item .title-content-title");
var count = await locator.CountAsync();

foreach (var l in await locator.AllAsync())
{
    Console.WriteLine(await l.InnerTextAsync());
}

if (count > 0)
{
    await locator.First.ClickAsync();
    await browser.WaitForPageAsync();
}

// 获取最新的页面
// await Task.Delay(100);

var pages = browser.Pages;

Console.WriteLine($"当前打开的页面数量: {pages.Count}");


// // 判断 #chat-textarea1 是否存在
// var locator = page.Locator("#chat-textarea");
//
//
// await page.Locator("#chat-textarea1", new PageLocatorOptions()
// {
// }).FillAsync("写一段代码，使用playwright打开百度首页");

// // 获取输入框
// var input = await page.QuerySelectorAsync("#chat-textarea");
// if (input != null)
// {
//     await input.FillAsync("写一段代码，使用playwright打开百度首页");
// }


Console.ReadKey();